#ifndef _IBACKGROUNDWORKER_CORE_H_
#define _IBACKGROUNDWORKER_CORE_H_

#include "IBWlib/ibw.h"
#include <wx/init.h>

class IWorkThread;

class XDLL IBackgroundWorker
{
private:
	IWorkThread * m_thread;
	bool in_progress;
public:
	IBackgroundWorker();
	~IBackgroundWorker();
public:
	IWorkThread * GetThread();
	bool InProgress();
	bool Exec();
	bool Pause();
	void Resume();
	void SetProgress(bool status);
	virtual bool Engine() = 0;
	virtual void Result() = 0;
};

#endif